2950 FOR I=0 TO 15:LINE(16+(I MOD 4)*16,20+(I\4)*16)-STEP(16,16),PSET,%0,BF:LINE(16+(I MOD 4)*16,20+(I\4)*16)-STEP(16,16),PSET,7,B:NEXT:LINE(17,21)-STEP(14,14),PSET,%13,BF:RGB=PL(0):GOSUB *RGB_BUNKAI:PALETTE 13,[G*8,R*8,B*8]
9440 ON INSTR(CHR$(13,&H1D,8,&H1C,&H7F),MOJI_IN$) GOTO *MOJI_T,*MOJI_L,*MOJI_B,*MOJI_R,*MOJI_D
9450 IF (((ASC(MOJI_IN$)>=&H80 AND ASC(MOJI_IN$)<=&H9F) OR ASC(MOJI_IN$)>=&HE0) AND MOJI_KNF=0 ) AND LEN(MOJ$)>=MJM-1 THEN MOJI_IN$=INKEY$:GOTO *MOJI_M
9460 IF LEN(MOJ$)>=MJM THEN *MOJI_M
9470 IF ((ASC(MOJI_IN$)>=&H80 AND ASC(MOJI_IN$)<=&H9F) OR ASC(MOJI_IN$)>=&HE0) AND MOJI_KNF=0 THEN MOJI_KNF=ASC(MOJI_IN$):GOTO *MOJI_M
9480 IF MOJI_KNF THEN MOJ$=LEFT$(MOJ$,MOJI_COS)+CHR$(MOJI_KNF)+MOJI_IN$+MID$(MOJ$,MOJI_COS+1):MOJI_KNF=0:GOTO *MOJI_R ELSE MOJ$=LEFT$(MOJ$,MOJI_COS)+MOJI_IN$+MID$(MOJ$,MOJI_COS+1):MOJI_KNF=0:GOTO *MOJI_R
9490 GOTO *MOJI_M
9500 *MOJI_T
9510 LINE(MJX,MJY)-STEP(MJM*6-1,11),PSET,%MJB,BF
9520 SYMBOL(MJX,MJY),MOJ$,.75!,.75!,%MJC
9530 WHILE INKEY$<>"":WEND
9540 RETURN
9550 *MOJI_L
9560 IF MOJI_COS<=0 THEN *MOJI_M
9570 IF MOJI_COS>=2 THEN IF KTYPE(MID$(MOJ$,MOJI_COS-1,2),1) THEN MOJI_COS=MOJI_COS-2 ELSE MOJI_COS=MOJI_COS-1 ELSE MOJI_COS=MOJI_COS-1
9580 GOTO *MOJI_M
9590 *MOJI_R
9600 IF MOJI_COS>=LEN(MOJ$) THEN *MOJI_M
9610 IF MOJI_COS<=LEN(MOJ$)-1 THEN IF KTYPE(MID$(MOJ$,MOJI_COS+1,2),1) THEN MOJI_COS=MOJI_COS+2 ELSE MOJI_COS=MOJI_COS+1 ELSE MOJI_COS=MOJI_COS+1
9620 IF MOJI_COS>=MJM THEN *MOJI_L
9630 GOTO *MOJI_M
9640 *MOJI_D
9650 IF MID$(MOJ$,MOJI_COS+1)="" THEN *MOJI_M
9660 IF (ASC(MID$(MOJ$,MOJI_COS+1,1))>=&H80 AND ASC(MID$(MOJ$,MOJI_COS+1,1))<=&H9F) OR ASC(MID$(MOJ$,MOJI_COS+1,1))>=&HE0 THEN MOJ$=LEFT$(MOJ$,MOJI_COS)+MID$(MOJ$,MOJI_COS+3) ELSE MOJ$=LEFT$(MOJ$,MOJI_COS)+MID$(MOJ$,MOJI_COS+2)
9670 GOTO *MOJI_M
9680 *MOJI_B
9690 IF MOJI_COS<=0 THEN *MOJI_M
9700 IF MOJI_COS>=2 THEN IF KTYPE(MID$(MOJ$,MOJI_COS-1,2),1) THEN MOJI_COS=MOJI_COS-2 ELSE MOJI_COS=MOJI_COS-1 ELSE MOJI_COS=MOJI_COS-1
9710 GOTO *MOJI_D
9720 '
9730 *BAN 'GX,GY,GB
9740 GOSUB *M_OFF
9750 LINE(96,16)-(96+511,27),PSET,%14,BF
9760 LINE(612,32)-(623,463),PSET,%14,BF
9770 FOR I=0 TO 15
9780 CX=(I*32-GX*2)*GB:CY=(I*32-GY*2)*GB
9790 IF CX>=0 AND CX<=511 THEN LINE(96+CX,17)-(96+CX,26),PSET,7
9800 IF CY>=0 AND CY<=431 THEN LINE(613,CY+32)-(622,CY+32),PSET,7
9810 CX=CX+10:CY=CY+10
9820 IF CX>=0 AND CX<=511-12 THEN SYMBOL(96+CX,17),AKCNV$(HEX$(I)),.75!,.75!,7
9830 IF CY>=0 AND CY<=431-12 THEN SYMBOL(612,CY+32),AKCNV$(HEX$(I)),.75!,.75!,7
10940 IF FNMW(MOX,MOY,MOB1) THEN Z=0:NEXT:GOSUB *WTOP:GOTO 10880'GOTO *MAIN
10950 NEXT
10960 ENDIF
10970 ENDIF
10980 MSX=624:MEX=639:MSY=0:MEY=15:WMANF=0
10990 IF WIN>-1 THEN WMANF=0:FOR I=0 TO WIN:X1=MSX:Y1=MSY:X2=MEX:Y2=MEY:A1=WX(WIF(I)):B1=WY(WIF(I)):A2=WX(WIF(I))+WWX(WIF(I)):B2=WY(WIF(I))+WWY(WIF(I)):GOSUB *CHK:IF RET=-1 THEN WMANF=-1:NEXT ELSE NEXT
11000 IF WMANF THEN ELSE GOSUB *BTN_CHK:IF MOS THEN GOSUB *WIN_MAN:GOTO *MAIN
11010 GOSUB *C_IDO
11020 GOSUB *CHOK:'直接位置指定
11030 GOSUB *M_EDO'ドット等の編集操作
11040 GOTO *MAIN
11050 *WIN_MAN
11060 IF SEARCH(WIF,5)<>-1 AND SEARCH(WIF,5)<=WIN THEN WN=5:GOSUB *WTOP ELSE WN=5:WX(WN)=MOUSE(0):WY(WN)=MOUSE(1):GOSUB *WIN_ON
11070 RETURN
11080 *C_IDO
11090 IF FNMPAU( 80, 32, 91,463,0) OR FNMPAU(628, 32,639,463,0) OR FNMPAU( 96, 0,607, 11,0) OR FNMPAU( 96,468,607,479,0) THEN ELSE RETURN
11100 GOSUB *ALL_WINC
11110 IF FNMPAU( 80, 32, 91,463,0) THEN MSX=80:MSY=32:MEX=91:MEY=463:GOSUB *BTN_ON:WHILE FNMPAU( 80, 32, 91,463,0):GX=GX-1:GOSUB *Z_CHK:GOSUB *BAN:WEND:GOSUB *BTN_OFF
11120 IF FNMPAU(628, 32,639,463,0) THEN MSX=628:MSY=32:MEX=639:MEY=463:GOSUB *BTN_ON:WHILE FNMPAU(628, 32,639,463,0):GX=GX+1:GOSUB *Z_CHK:GOSUB *BAN:WEND:GOSUB *BTN_OFF
11130 IF FNMPAU( 96, 0,607, 11,0) THEN MSX=96:MSY=0:MEX=607:MEY=11:GOSUB *BTN_ON:WHILE FNMPAU( 96, 0, 607,11,0):GY=GY-1:GOSUB *Z_CHK:GOSUB *BAN:WEND:GOSUB *BTN_OFF
11140 IF FNMPAU( 96,468,607,479,0) THEN MSX=96:MSY=468:MEX=607:MEY=479:GOSUB *BTN_ON:WHILE FNMPAU( 96, 468, 607,479,0):GY=GY+1:GOSUB *Z_CHK:GOSUB *BAN:WEND:GOSUB *BTN_OFF
11150 GOSUB *ALL_WINO
11160 RETURN
11170 *Z_CHK
11180 IF GX<0 THEN GX=0
11190 IF GY<0 THEN GY=0
11200 IF GX+256/GB-1>255 THEN GX=256-256/GB
11210 IF GY+216/GB-1>255 THEN GY=256-216/GB
11220 RETURN
11230 *CHOK
11240 IF FNMPAU(8,208,8+63,208+63,0) THEN ELSE RETURN
13240 IF MOS THEN BCHK=0:RGB=PL(PAL):GOSUB *RGB_BUNKAI:IF R>0 THEN R=R-1:GOSUB *RGB_GOUSEI:IF PL(PAL)<>RGB THEN PL(PAL)=RGB:GOSUB *RGB_SET:GOSUB *RGB_PUT:KAKI=1:WAIT 5
13260 IF MOS THEN BCHK=0:RGB=PL(PAL):GOSUB *RGB_BUNKAI:IF G>0 THEN G=G-1:GOSUB *RGB_GOUSEI:IF PL(PAL)<>RGB THEN PL(PAL)=RGB:GOSUB *RGB_SET:GOSUB *RGB_PUT:KAKI=1:WAIT 5
13280 IF MOS THEN BCHK=0:RGB=PL(PAL):GOSUB *RGB_BUNKAI:IF B>0 THEN B=B-1:GOSUB *RGB_GOUSEI:IF PL(PAL)<>RGB THEN PL(PAL)=RGB:GOSUB *RGB_SET:GOSUB *RGB_PUT:KAKI=1:WAIT 5
13300 IF MOS THEN BCHK=0:RGB=PL(PAL):GOSUB *RGB_BUNKAI:IF R<31 THEN R=R+1:GOSUB *RGB_GOUSEI:IF PL(PAL)<>RGB THEN PL(PAL)=RGB:GOSUB *RGB_SET:GOSUB *RGB_PUT:KAKI=1:WAIT 5
13320 IF MOS THEN BCHK=0:RGB=PL(PAL):GOSUB *RGB_BUNKAI:IF G<31 THEN G=G+1:GOSUB *RGB_GOUSEI:IF PL(PAL)<>RGB THEN PL(PAL)=RGB:GOSUB *RGB_SET:GOSUB *RGB_PUT:KAKI=1:WAIT 5
13340 IF MOS THEN BCHK=0:RGB=PL(PAL):GOSUB *RGB_BUNKAI:IF B<31 THEN B=B+1:GOSUB *RGB_GOUSEI:IF PL(PAL)<>RGB THEN PL(PAL)=RGB:GOSUB *RGB_SET:GOSUB *RGB_PUT:KAKI=1:WAIT 5
13840 IF DRV$="" THEN DRV$=CHR$(CALLM(BAS_LIB&,1))
13850 GOSUB *DRV_SEL
13860 IF ERN THEN *FS_MAIN
13870 IF PAS$="" THEN PAS$=STRING$(255,0):RET&=CALLM(BAS_LIB&,2,ASC(DRV$),VARPTR(PAS$))
13880 GOSUB *PAS_CHK
13890 IF ERN THEN *FS_MAIN
13900 GOSUB *WLD_LIST
13910 'CP=カーソル先頭ポインタ,DIR=対象ファイル数,FI$=選択ファイル名部分
13920 *FS_MAIN:BCHK=1
13930 DRL$="ABDEFGHIJKLMNOPQ"
13940 FOR J=0 TO 15
13950 MSX=WX(4)+12+(J MOD 4)*22:MSY=WY(4)+60+(J\4)*16:MEX=MSX+21:MEY=MSY+15:GOSUB *BTN_CHK
13960 IF MOS THEN DRV$=MID$(DRL$,J+1,1):J=15:NEXT:GOTO 13850
13970 NEXT 'パス31文字 ファイル4段
13980 IF SLF THEN ELSE MSX=WX(4)+8:MEX=MSX+69+6:MSY=WY(4)+160-24:MEY=MSY+15:GOSUB *BTN_CHK:IF MOS THEN MJX=WX(4)+10:MJY=WY(4)+162-24:MJB=7:MJC=15:MJL=12:MJM=12:MOJ$=FI$:GOSUB *MOJI_IN:FI$=MOJ$
14000 IF MOS THEN GOSUB *WIN_OFF:IF FI$="" THEN FIL$="":WN=MMMWN:RETURN ELSE GOSUB *EN:FIL$=DRV$+":"+PAS$+EN$+FI$:IF INSTR(FIL$," ") THEN FIL$=LEFT$(FIL$,INSTR(FIL$," ")-1):WN=MMMWN:RETURN ELSE WN=MMMWN:RETURN
14060 IF MOS AND DIR>5 AND CP<DIR-5 THEN CPD=+1:GOSUB *FLIST_PUT
14070 IF FNMPAU(WX(4)+112,WY(4)+51,WX(4)+112+14*6+4-1,WY(4)+51+16*4+1,0) THEN
14080 FOR J=0 TO 4
14090 IF FNMPAU(WX(4)+112,WY(4)+51+J*13,WX(4)+112+14*6+4-1,WY(4)+51+J*13+12,0) THEN
14100 IF LEFT$(DIR$(CP+J),1)="D" THEN IF CP+J<DIR THEN CH$=MID$(DIR$(CP+J),2):GOSUB *DIR_CHANGE:J=4:NEXT:GOTO 13880
14110 IF LEFT$(DIR$(CP+J),1)="F" THEN IF CP+J<DIR THEN FI$=MID$(DIR$(CP+J),2):MOJ$=FI$:MJX=WX(4)+10:MJY=WY(4)+162-24:MJB=7:MJC=15:MJL=12:MJM=12:GOSUB *MOJI_T:J=4
14640 IF LEFT$(FPS$,1)="D" THEN FFPS$="<"+MID$(FPS$,2):FFPS$=FFPS$+STRING$(14-LEN(FFPS$)-1," ")+">"
14650 IF LEFT$(FPS$,2)="D." THEN FFPS$="< . >"
14660 IF LEFT$(FPS$,3)="D.." THEN FFPS$="<<親ディレクトリ >>"
14670 IF LEFT$(FPS$,1)="F" THEN IF INSTR(FPS$,".") THEN FFPS$=" "+MID$(FPS$,2,INSTR(FPS$,".")-2):FFPS$=FFPS$+STRING$(14-LEN(FFPS$)-4," ")+MID$(FPS$,INSTR(FPS$,".")+1,3) ELSE FFPS$=" "+MID$(FPS$,2,8)
14810 IF CPD=1 THEN GET@A(WX(4)+112,WY(4)+51+13)-(14*6+4-1+WX(4)+112,16*4+1+WY(4)+51),FLSB&:PUT@A(WX(4)+112,WY(4)+51)-(14*6+4-1+WX(4)+112,-13+16*4+1+WY(4)+51),FLSB&
14820 IF CPD=-1 THEN GET@A(WX(4)+112,WY(4)+51)-(14*6+4-1+WX(4)+112,-13+16*4+1+WY(4)+51),FLSB&:PUT@A(WX(4)+112,13+WY(4)+51)-(14*6+4-1+WX(4)+112,16*4+1+WY(4)+51),FLSB&
14830 CP=CP+CPD
14840 IF CPD=1 THEN LINE(WX(4)+112,WY(4)+51+52)-STEP(14*6+4-1,12),PSET,7,BF:FPS$=DIR$(CP+4):FPY=4:GOSUB *FLIST_P
14850 IF CPD=-1 THEN LINE(WX(4)+112,WY(4)+51)-STEP(14*6+4-1,12),PSET,7,BF:FPS$=DIR$(CP):FPY=0:GOSUB *FLIST_P
14860 RETURN
14870 CLS:CLEAR ,,,,,300*1024:DEF FONT "システム 12ドット":DIM MES$(4):PALETTE 14,0:MES=1:MES$(1)="終了します。よろしいですか?":MES$(2)="よろしいですか?":MES_YN=1:GOSUB *MES_YN:WHILE INKEY$="":WEND
15870 IF ER THEN MES$(1)="ファイルが読めません。":MES=1:MES_YN=1:GOSUB *MES_YN:GOTO 15940
15880 GOSUB *MK_EDO
15890 IF ID$<>"EDO1" THEN MES$(1)="ファイルが読めません。":MES=1:MES_YN=1:GOSUB *MES_YN:GOTO 15940
15900 GOSUB *W_GET
15910 GOSUB *SET_CHAR
15920 GOSUB *MK_EDO_PLT
15930 KAKI=0:EDO$=FI$
15940 GOSUB *WB_PUT
15950 GOTO *MW00
15960 *MK_EDO
15970 ID$="":FOR IK=0 TO 3:ID$=ID$+CHR$(PEEK(VARPTR(EDO(0))+IK,1)):NEXT
15980 RETURN
15990 *MK_EDO_PLT
16000 FOR IK=0 TO 15:PL(IK)=EDO(8+IK):NEXT:GOSUB *PAL_SET:RGB=PL(0):GOSUB *RGB_BUNKAI:PALETTE 13,[G*8,R*8,B*8]:RGB=PL(PAL):GOSUB *RGB_BUNKAI:PALETTE 11,[G*8,R*8,B*8]
16010 RGB&=PL(0):CALLM SPRBACK&,RGB&
16020 GOSUB *ALL_WINC:GOSUB *ALL_WINO
16030 RETURN
16040 *MW04
16050 MSX=WX(0)+6+(MAIN MOD 3)*42:MSY=WY(0)+20+(MAIN\3)*18:MEX=MSX+39:MEY=MSY+15:GOSUB *SWT_OFF
16060 MAIN=4
16070 MSX=WX(0)+6+(MAIN MOD 3)*42:MSY=WY(0)+20+(MAIN\3)*18:MEX=MSX+39:MEY=MSY+15:GOSUB *SWT_ON_R
16210 IF ER=64 THEN ER=0:KILL"EDO$$$TF.TIF":IF ER THEN *S_ER ELSE 16200
16220 IF ER THEN *S_ER
16230 ER=0
16240 NAME "EDO$$$ED.TMP" AS FIL$
16250 IF ER=64 THEN
16260 MES$(1)="同名のファイルが存在します。上書きしてもよいですか?"
16270 MES=1:MES_YN=0:GOSUB *MES_YN
16280 IF YN THEN ER=0:KILL FIL$:IF ER THEN *S_ER ELSE ER=0:KILL F$+".TIF":IF ER THEN *S_ER ELSE GOTO 16240
16290 ENDIF
16300 IF ER THEN *S_ER
16310 ER=0
16320 NAME "EDO$$$TF.TIF" AS F$+".TIF"
16330 IF ER THEN *S_ER
16340 KAKI=0:EDO$=FI$:ON ERROR GOTO *MERR
16350 GOTO *MW00
16360 *S_ER:ON ERROR GOTO *MERR
16370 MES$(1)="保存できません。確認してください。"
16380 MES=1:MES_YN=1:GOSUB *MES_YN
16390 GOTO *MW00
16400 *MK_EDOS
16410 FOR IK=0 TO 3:POKE VARPTR(EDO(0))+IK,ASC(MID$(ID$,IK+1,1)),1:NEXT
16420 FOR IK=0 TO 7:POKE VARPTR(EDO(0))+4+IK,ASC(MID$(TOOL$,IK+1,1)),1:NEXT
16430 FOR IK=0 TO 15:EDO(8+IK)=PL(IK):NEXT
16440 RETURN
16450 *MW02
16460 GOSUB *B_GET:GOSUB *W_GET
16470 PUT@A(640,256)-(895,511),WORK&
16480 PUT@A(640,0)-(895,255),UNDO&
16490 GOSUB *W_GET
16500 GET@A(640,256)-(895,511),UNDO&
16510 GOSUB *B_PUT
16520 GOSUB *SET_CHAR
16530 GOTO *MW00
16540 *MW05
16550 RETURN
16560 *MW06
16570 MSX=WX(0)+6+(MAIN MOD 3)*42:MSY=WY(0)+20+(MAIN\3)*18:MEX=MSX+39:MEY=MSY+15:GOSUB *SWT_OFF
16580 MAIN=6
16590 MSX=WX(0)+6+(MAIN MOD 3)*42:MSY=WY(0)+20+(MAIN\3)*18:MEX=MSX+39:MEY=MSY+15:GOSUB *SWT_ON_R
16600 IF KAKI THEN MES$(1)="書換え箇所がありますが、":MES$(2)="全て消去しても宜しいですか?":MES=2:MES_YN=0:GOSUB *MES_YN:IF YN THEN ELSE 16690
16610 ERASE BACK&,WORK&
16620 DIM WORK&(16*16*32-1),BACK&(16*16*32-1)
16630 ERASE PL,BPAL
16640 DIM PL(15),BPAL(15)
16650 GOSUB *WB_PUT
16660 GOSUB *SET_CHAR:GOSUB *SET_BACK
16670 DEF SPRITE 2,0,PL:DEF SPRITE 2,1,BPAL
16680 GOSUB *MAIN_SCREEN:KAKI=0
16690 GOTO *MW00
16700 *MW07:BCHK=1
16710 MSX=WX(0)+6+(MAIN MOD 3)*42:MSY=WY(0)+20+(MAIN\3)*18:MEX=MSX+39:MEY=MSY+15:GOSUB *SWT_OFF
16720 MAIN=7
16730 MSX=WX(0)+6+(MAIN MOD 3)*42:MSY=WY(0)+20+(MAIN\3)*18:MEX=MSX+39:MEY=MSY+15:GOSUB *SWT_ON_R
16740 WN=6:GOSUB *WIN_ON
16750 MSX=WX(6)+6:MSY=WY(6)+20:MEX=WX(6)+16+12*6-1:MEY=WY(6)+35:GOSUB *BTN_CHK:IF MOS THEN GOSUB *SWT_ON_R:GOSUB *CDP:MSX=WX(6)+6:MSY=WY(6)+20:MEX=WX(6)+16+12*6-1:MEY=WY(6)+35:GOSUB *SWT_OFF
16760 MSX=WX(6)+6:MSY=WY(6)+38:MEX=WX(6)+16+12*6-1:MEY=WY(6)+53:GOSUB *BTN_CHK:IF MOS THEN GOSUB *SWT_ON_R:GOSUB *EUP:MSX=WX(6)+6:MSY=WY(6)+38:MEX=WX(6)+16+12*6-1:MEY=WY(6)+53:GOSUB *SWT_OFF
16950 PLAY OFF:GOSUB *FM_OFF:MSX=WX(8)+6:MSY=WY(8)+38:MEX=MSX+8+30-1:MEY=MSY+15:GOSUB *SWT_OFF
16960 IF FIL$="" THEN ELSE ON ERROR GOTO *E:ER=0:OPEN"I",#1,FIL$:CLOSE:IF ER THEN ELSE FP$=FIL$+CHR$(0):ERASE EUP:DIM EUP(CALLM(BAS_LIB&,14,VARPTR(FP$))\2+1+16):LOAD@ FIL$,EUP:ON ERROR GOTO *MERR
17210 IF MOS AND CDS(1)=1 THEN ON ERROR GOTO *E:CDINF CDI:IF CDS(5)>1-(CDI(1)=3) THEN CD PLAY CDS(5)-1,CDI(5):ON ERROR GOTO *MERR ELSE ON ERROR GOTO *MERR
17300 MSX=WX(0)+6+(MAIN MOD 3)*42:MSY=WY(0)+20+(MAIN\3)*18:MEX=MSX+39:MEY=MSY+15:GOSUB *SWT_OFF
17310 MAIN=8
17320 MSX=WX(0)+6+(MAIN MOD 3)*42:MSY=WY(0)+20+(MAIN\3)*18:MEX=MSX+39:MEY=MSY+15:GOSUB *SWT_ON_R
17330 IF KAKI THEN MES$(1)="書換え箇所がありますが、":MES$(2)="そのまま終了しても宜しいですか?":MES=2:MES_YN=0:GOSUB *MES_YN ELSE MES$(1)="「江戸」を終了します。宜しいですか?":MES=1:MES_YN=0:GOSUB *MES_YN
17340 IF YN THEN END
17350 GOTO *MW00
17360 *E
17370 ER=ERR
17380 RESUME NEXT
17390 *M_EDO
17400 IF PPEN=-1 THEN RETURN
17410 IF FNMPAU(96,32,607,471,1) THEN GOSUB *S_SPOIT:RETURN
17420 IF FNMPAU(96,32,607,471,0) THEN
17430 ON PPEN+1 GOSUB *ME1,*ME2
17440 IF PPEN<>0 THEN MPEDOX=-1:MPEDOY=-1
17450 RETURN
17460 ENDIF
17470 'IF UNF THEN GOSUB *UNDO:UNF=0
17480 RETURN
17490 *S_SPOIT
17500 EDO_X=MOUSE(0):EDO_Y=MOUSE(1)
17510 IF EDO_X<96 OR EDO_Y<32 OR EDO_X>607 OR EDO_Y>471 THEN RETURN
17520 GET@A(640+(EDO_X-96)\(GB*2)+GX,(EDO_Y-32)\(GB*2)+GY)-(640+(EDO_X-96)\(GB*2)+GX,(EDO_Y-32)\(GB*2)+GY),SPO:IF PAL=SPO(0) THEN 17560 ELSE SQ=PAL:PAL=SPO(0)
17530 IF WIN<>-1 THEN IF WIF(WIN)=3 THEN WN=3:GOSUB *RGB_PUT:GOSUB *R_SQ
17540 IF WIN<>-1 THEN IF SEARCH(WIF,3)<>-1 AND SEARCH(WIF,3)<=WIN AND WIF(WIN)<>3 THEN WN=3:GOSUB *WTOP